#------------------------------------------------------------------------------
#- Archivo:                         Makefile
#- Fecha de creacion:               13/01/2011
#- Ultima fecha de modificacion:    28/01/2011
#- Diseñador:                       Liliana Andrade
#- Diseño:                          Makefile
#- Proposito:                       Compilar  los  archivos  y  generar  los
#-                                  resultados desde alliance
#------------------------------------------------------------------------------

ALLIANCE_TOP	= /opt/alliance-5.0

ENV_ASIMUT	    = MBK_CATAL_NAME=CATAL_ASIMUT

ENV_COUGAR	    = MBK_SPI_MODEL=$(ALLIANCE_TOP)/etc/spimodel.cfg ;\
		          export MBK_SPI_MODEL;\
		          MBK_IN_PH=ap ;\
		          export MBK_IN_PH;\
		          MBK_OUT_LO=spi;\
		          export MBK_OUT_LO


# all
#------------------------------------------------------------------------------
all: translate check-behavioral synthesis place_and_route transistors


# etapa translate
#------------------------------------------------------------------------------
translate:              mux4to1.vbe mlu.vbe lu.vst

mux4to1.vbe:            mux4to1.vhdl
	                    vasy -Vaop -I vhdl mux4to1

mlu.vbe:                mlu.vhdl
	                    vasy -Vaop -I vhdl mlu

lu.vst lu_model.vbe:    lu.vhdl
	                    vasy -Vaop -I vhdl -H lu


# etapa check-behavioral
#------------------------------------------------------------------------------
check-behavioral:   mux4to1.vbe mlu.vbe lu_model.vbe lu.vst test_lu.pat \
		            result.pat view-behavioral

test_lu.pat:        test_lu.c
	                genpat test_lu

result.pat:         lu.vst test_lu.pat
	                $(ENV_ASIMUT) asimut lu test_lu result

view-behavioral:    result.pat
	                xpat -l result


# etapa de sintesis
#------------------------------------------------------------------------------
synthesis:          lu_model_boom.vbe mux4to1_boom.vbe mlu_boom.vbe \
	                lu_model_boog.vst mux4to1_boog.vst mlu_boog.vst \
	                lu_model_loon.vst mux4to1_loon.vst mlu_loon.vst

lu_model_boom.vbe:  lu_model.vbe
	                boom lu_model lu_model_boom

mux4to1_boom.vbe:   mux4to1.vbe
	                boom mux4to1 mux4to1_boom

mlu_boom.vbe:       mlu.vbe
	                boom mlu mlu_boom


lu_model_boog.vst:  lu_model_boom.vbe
	                boog lu_model_boom lu_model_boog

mux4to1_boog.vst:   mux4to1_boom.vbe
	                boog mux4to1_boom mux4to1_boog

mlu_boog.vst:       mlu_boom.vbe
	                boog mlu_boom mlu_boog


lu_model_loon.vst:  lu_model_boog.vst
	                loon lu_model_boog lu_model

mux4to1_loon.vst:   mux4to1_boog.vst
	                loon mux4to1_boog mux4to1

mlu_loon.vst:       mlu_boog.vst
	                loon mlu_boog mlu


view-comp:          mux4to1.vst mlu.vst lu_model.vst lu.vst
	                xsch -l lu


# etapa place & route
#------------------------------------------------------------------------------
place_and_route:    synthesis lu_ocp.ap lu_nero.ap lu_s2r.cif view-place \
		            view-route view-real


lu_ocp.ap:          lu.vst
	                ocp lu lu_ocp

lu_nero.ap:         lu_ocp.ap lu.vst
	                nero -p lu_ocp lu lu_nero

lu_s2r.cif:         lu_nero.ap
	                s2r lu_nero lu_s2r


view-place:         synthesis lu_ocp.ap
	                graal -l lu_ocp

view-route:         synthesis lu_nero.ap
	                graal -l lu_nero

view-real:          synthesis lu_s2r.cif
	                dreal -l lu_s2r


# etapa transistores
#------------------------------------------------------------------------------
transistors:        lu_transistors.spi view-transistors

lu_transistors.spi: lu_nero.ap
	                $(ENV_COUGAR); cougar -t lu_nero lu_transistors

view-transistors:   lu_transistors.spi
	                $(ENV_COUGAR); xsch -I spi -l lu_transistors


# clean
#------------------------------------------------------------------------------
clean:
	rm -rf	*~ \
	*.vbe \
	*.vst \
 	*.ap \
	*.cif \
	*.xsc \
	*.pat \
	*.spi \
	*.dat \
	*#
